// Copyright (C) 2023 即时通讯网(52im.net) & Jack Jiang.
// The RainbowChat Project. All rights reserved.
// 
// 【本产品为著作权产品，合法授权后请放心使用，禁止外传！】
// 【本次授权给：<北京小羊驼科技有限公司>，授权编号：<NT231212144350>，代码指纹：<A.702363430.550>，技术对接人微信：<ID: wxid_wbyootvkdcgj22>】
// 【授权寄送：<收件：苏先生、地址：北京市大兴区北京密码西区6号楼1单元301、电话：18613885610、邮箱：bd@huiyuanxiang-inc.com>】
// 
// 【本系列产品在国家版权局的著作权登记信息如下】：
// 1）国家版权局登记名(简称)和权证号：RainbowChat    （证书号：软著登字第1220494号、登记号：2016SR041877）
// 2）国家版权局登记名(简称)和权证号：RainbowChat-Web（证书号：软著登字第3743440号、登记号：2019SR0322683）
// 3）国家版权局登记名(简称)和权证号：RainbowAV      （证书号：软著登字第2262004号、登记号：2017SR676720）
// 4）国家版权局登记名(简称)和权证号：MobileIMSDK-Web（证书号：软著登字第2262073号、登记号：2017SR676789）
// 5）国家版权局登记名(简称)和权证号：MobileIMSDK    （证书号：软著登字第1220581号、登记号：2016SR041964）
// * 著作权所有人：江顺/苏州网际时代信息科技有限公司
// 
// 【违法或违规使用投诉和举报方式】：
// 联系邮件：jack.jiang@52im.net
// 联系微信：hellojackjiang
// 联系QQ号：413980957
// 授权说明：http://www.52im.net/thread-1115-1-1.html
// 官方社区：http://www.52im.net
package com.x52im.mall;

import android.app.Activity;

import com.x52im.rbchat.Const;
import com.x52im.rbchat.MyApplication;
import com.x52im.rbchat.logic.main.LoginActivity;
import com.x52im.rbchat.utils.ToolKits;

import java.io.File;
import java.util.HashMap;
import java.util.Map;

/**
 * 之前商城是作为一个独立的子模块放入到RainbowChat的，为了代码解偶，商城中要使用的诸如：
 * RainbowChat的用户id、RainbowChat的全局Application对象、配置在MyApplication中的http接口地址等，
 * 都是通过RomitimeMall这个商城中预留的全局对象来拿到的，而商城通过它的Activity反过来通过拿到Application
 * 对象，也就能取到以下代码中实例化的RomotimeMall对象了。从而达到商城无需直接引用RainbowChat任何
 * 代码，也能与之密切接入的目的，同时实现了代码解偶。
 */
public class MallGlobalImpl extends MallGlobal {

    // ******************************************************************* For Robotime Mall START
    /** 【商城】中的商品数据服务的目录URL */
    public final static String DIR_OF_MALL_GOODS_PICS_URL_ROOT =  Const.HTTP_SERVER_ROOT_URL+"temp_for_mall/";
    // ******************************************************************* For Robotime Mall END

    /** 商城中的：PayPal 卖家账号 */
    public final static String PAYPAL_BUSINESS_SELLER_MAIL = "jack.jiang@52im.net";
    /** 商城中的：PayPal 快速结账链接 */
    public final static String PAYPAL_EXPRESS_CHECK_OUT_ADDRESS = "https://www.paypal.com/cgi-bin/webscr";
    /** 商城中的：PayPal快速结账返回url */
    public final static String PAYPAL_EXPRESS_CHECK_OUT_RETURN_URL = Const.HTTP_SERVER_ROOT_URL + "paypal/result.jsp";

    public MallGlobalImpl(String HTTP_SERVER_CONTROLLER_URL_ROOT) {
        super(HTTP_SERVER_CONTROLLER_URL_ROOT, DIR_OF_MALL_GOODS_PICS_URL_ROOT);
    }

    @Override
    public String getLoginedUserUid()
    {
        if(MyApplication.getInstance2().getIMClientManager().getLocalUserInfo() != null)
            return MyApplication.getInstance2().getIMClientManager().getLocalUserInfo().getUser_uid();
        else return null;
    }

    @Override
    public Map<String, String> getPayPalExpressCheckOutConfig()
    {
        Map<String, String> map = new HashMap<String, String>();
        map.put("__seller_acount__", PAYPAL_BUSINESS_SELLER_MAIL);
        map.put("__express_check_out_url__", PAYPAL_EXPRESS_CHECK_OUT_ADDRESS);
        map.put("__express_check_out_return_url__", PAYPAL_EXPRESS_CHECK_OUT_RETURN_URL);

        return map;
    }

    /**
     * 退出程序实现方法.
     */
    @Override
    public void doExit(Activity a)
    {
        LoginActivity.doLogout(a, true, null);
    }

    @Override
    public String getLoginedUserMail()
    {
        if(MyApplication.getInstance2().getIMClientManager().getLocalUserInfo() != null)
            return MyApplication.getInstance2().getIMClientManager().getLocalUserInfo().getUser_mail();
        else return null;
    }

    /**
     * 获得商品图片缓存数据存放的根目录.
     *
     * @return
     */
    public String getGoodPicsCachedDirPath()
    {
        String dir = null;
        File sysExternalStorageDirectory = ToolKits.getDefaultCacheDir();//Environment.getExternalStorageDirectory();
        if(sysExternalStorageDirectory != null && sysExternalStorageDirectory.exists())
        {
            dir = sysExternalStorageDirectory.getAbsolutePath() + Const.DIR_KCHAT_WORK_RELATIVE_ROOT+"/mall/";
        }

        return dir;
    }
}
